The Distribution of Bitcoin users

I wanted to get an idea of the distribution of bitcoin clients throughout the world. While bitcoin is a distributed network clients current connect to a central IRC channel to find initial peers. I connected an IRC client to the channel and monitored connections for a couple of days. I then ran the results through a geoip lookup tool.

The 10 countries with the most bitcoin clients are:

Position Count Country
1 2769 US, United States
2 868 DE, Germany
3 518 RU, Russian Federation
4 478 GB, United Kingdom
5 368 CA, Canada
6 332 PL, Poland
7 227 CN, China
8 227 AU, Australia
9 179 SE, Sweden
10 171 UA, Ukraine

I was slightly surprised to see that the US was so far ahead to everyone else. Also to find that Japan was so far down the list, considering the technology is said to have originated there, and that the largest bitcoin exchange is hosted there.

Notes

The irc log file contains lines which look like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
10:25 -!- u4qBM3jsFJbVbpo [u4qBM3jsFJ@c-68-46-236-193.hsd1.fl.comcast.net] has quit [Ping timeout: 600 seconds]
10:25 -!- u5R1WUESwqDJAH4 [u5R1WUESwq@host-78-144-186-235.as13285.net] has quit [Ping timeout: 600 seconds]
10:25 -!- uCj5PhnxQtuXvRE [uCj5PhnxQt@208.180.143.71] has quit [Ping timeout: 600 seconds]
10:25 -!- u5vMMajjqPPNxqT [x895457775@p5791EE2F.dip.t-dialin.net] has joined #bitcoin
10:25 -!- uDEdr5uhnbT2e4f [uBo8KV3CtM@217.198.214.132] has quit [Ping timeout: 600 seconds]
10:26 -!- uAiz7fBo8XnZZ1i [x667997331@173-20-36-177.client.mchsi.com] has quit [Ping timeout: 600 seconds]
10:26 -!- u5jSfdNqpwjJ9eV [x988978976@dslb-084-056-239-104.pools.arcor-ip.net] has quit [Ping timeout: 600 seconds]
10:26 -!- u7LamexRgFDoHdu [x313154898@112.206.61.106] has quit [Ping timeout: 600 seconds]
10:26 -!- u69NdViycJWVKYm [x330853706@91.144.248.161] has joined #bitcoin
10:26 -!- u4W2ih7yRg7TH72 [x108114699@cs78140135.pp.htv.fi] has joined #bitcoin
10:26 -!- uB2dfUQ2HC94KkT [x123481046@178.126.145.180] has joined #bitcoin
10:26 -!- u6NXdjDMZoatVNi [uBpn2daN5n@95.154.123.102] has quit [Ping timeout: 600 seconds]
10:26 -!- uBrRc777VmroaKp [x240748133@193.41.62.121] has quit [Ping timeout: 600 seconds]
10:26 -!- u7yETCjt7iCtDL1 [u7yESyN1VP@124.13.137.118] has joined #bitcoin
10:26 -!- u6M6WhB6r7ucQTM [u6M6WhB6r7@apn-77-114-127-153.dynamic.gprs.plus.pl] has quit [Ping timeout: 600 seconds]
10:26 -!- u6DPECS8Ti8uSkD [u6DPJvLqgS@port-92-204-8-68.dynamic.qsc.de] has joined #bitcoin
10:26 -!- u5Dp18HMdzYBwjs [uLT6ynRagq@75-32-244-171.lightspeed.rbrnca.sbcglobal.net] has quit [Ping timeout: 600 seconds]

I used the following procedure to extract the lines containing the joins and perform the geoip lookups and counts. I only used unique addresses. The GeoIP database was from MaxMind and the database was updated on the 9th of September.

1
2
3
4
5
grep join irc.log > bitcoin.joins
... I then lazily replaced all the ]s with @s in the file bitcoin.joins
awk 'BEGIN{FS="@";}{print $2}' bitcoin.join > bitcoin.addrs
awk '{print "geoiplookup " $0}' bitcoin.addrs | sort | uniq | sh > bitcoin.countries.1
cat bitcoin.countries.1 | awk 'BEGIN{FS=":"}{print $2}' | sort | uniq -c | sort -k 1 -n -r > bitcoin.cntcount

The full breakdown of countries is as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
2769  US, United States
 868  DE, Germany
 518  RU, Russian Federation
 478  GB, United Kingdom
 368  CA, Canada
 332  PL, Poland
 227  CN, China
 227  AU, Australia
 179  SE, Sweden
 171  UA, Ukraine
 160  NL, Netherlands
 143  FR, France
 109  IT, Italy
  95  DK, Denmark
  95  AR, Argentina
  90  FI, Finland
  85  BR, Brazil
  82  RO, Romania
  72  ES, Spain
  72  AT, Austria
  71  CH, Switzerland
  64  ZA, South Africa
  59  MX, Mexico
  56  --, N/A
  48  IE, Ireland
  48  CZ, Czech Republic
  45  IL, Israel
  44  BE, Belgium
  43  NZ, New Zealand
  42  CO, Colombia
  41  NO, Norway
  35  IN, India
  27  SG, Singapore
  27  RS, Serbia
  27  BG, Bulgaria
  26  BY, Belarus
  24  TW, Taiwan
  20  TH, Thailand
  20  CL, Chile
  18  SI, Slovenia
  17  KZ, Kazakhstan
  17  JP, Japan
  17  HU, Hungary
  16  PT, Portugal
  16  GR, Greece
  15  PH, Philippines
  14  SK, Slovakia
  14  LT, Lithuania
  13  LV, Latvia
  12  MD, Moldova, Republic of
  12  HK, Hong Kong
  11  SA, Saudi Arabia
  11  MY, Malaysia
  10  MA, Morocco
  10  BA, Bosnia and Herzegovina
   9  HR, Croatia
   8  VN, Vietnam
   8  DO, Dominican Republic
   7  PE, Peru
   7  KR, Korea, Republic of
   7  A1, Anonymous Proxy
   6  VE, Venezuela
   6  IS, Iceland
   6  ID, Indonesia
   6  EC, Ecuador
   6  AE, United Arab Emirates
   5  PG, Papua New Guinea
   5  IR, Iran, Islamic Republic of
   4  TT, Trinidad and Tobago
   4  LK, Sri Lanka
   4  HN, Honduras
   4  EG, Egypt
   4  EE, Estonia
   4  BS, Bahamas
   3  UY, Uruguay
   3  TR, Turkey
   3  PA, Panama
   3  MK, Macedonia
   3  LU, Luxembourg
   3  JM, Jamaica
   3  JE, Jersey
   3  CR, Costa Rica
   3  BO, Bolivia
   2  ZM, Zambia
   2  TN, Tunisia
   2  MT, Malta
   2  LB, Lebanon
   2  ET, Ethiopia
   2  DZ, Algeria
   1  TZ, Tanzania, United Republic of
   1  SY, Syrian Arab Republic
   1  QA, Qatar
   1  PY, Paraguay
   1  PR, Puerto Rico
   1  PK, Pakistan
   1  OM, Oman
   1  MN, Mongolia
   1  KE, Kenya
   1  JO, Jordan
   1  GY, Guyana
   1  GU, Guam
   1  GT, Guatemala
   1  GI, Gibraltar
   1  CI, Cote D'Ivoire
   1  BN, Brunei Darussalam
   1  BB, Barbados
   1  AZ, Azerbaijan
   1  AL, Albania
   1  AG, Antigua and Barbuda

Leave a Reply